home *** CD-ROM | disk | FTP | other *** search
Wrap
<?xml version="1.0" encoding="ISO-8859-1"?> <xsd:schema targetNamespace="http://knightware.biz/dsp/schema" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:dsp="http://knightware.biz/dsp/schema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="6.0"> <xsd:include schemaLocation="dsptypes.xsd"/> <xsd:include schemaLocation="stotypes.xsd"/> <xsd:annotation> <xsd:documentation xml:lang="en"> Deep-Sky Planner observation plan document schema. Copyright © 2012 Knightware, LLC. All rights reserved. </xsd:documentation> </xsd:annotation> <!-- Plan metadata types --> <xsd:simpleType name="planNameType"> <xsd:restriction base="xsd:string"> <xsd:maxLength value="50"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="planAuthorType"> <xsd:restriction base="xsd:string"> <xsd:maxLength value="50"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="planCategoryType"> <xsd:restriction base="xsd:string"> <xsd:maxLength value="30"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="planDifficultyType"> <xsd:restriction base="xsd:string"> <xsd:maxLength value="30"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="planDescriptionType"> <xsd:restriction base="xsd:string"> <xsd:maxLength value="255"/> </xsd:restriction> </xsd:simpleType> <xsd:complexType name="planMetaDataType"> <xsd:sequence> <xsd:element name="planName" type="dsp:planNameType"/> <xsd:element name="planAuthor" type="dsp:planAuthorType"/> <xsd:element name="planCategory" type="dsp:planCategoryType"/> <xsd:element name="planDifficulty" type="dsp:planDifficultyType"/> <xsd:element name="planDescription" type="dsp:planDescriptionType"/> <xsd:element name="planCreateDate" type="xsd:date"/> <xsd:element name="planModifyDate" type="xsd:date"/> </xsd:sequence> </xsd:complexType> <!-- Plan localization types --> <!-- ephemDateTimeType enumerates relative times on a date, or a specific time on a date --> <xsd:simpleType name="ephemDateTimeEnum"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="sunset"/> <xsd:enumeration value="endTwilight"/> <xsd:enumeration value="beginTwilight"/> <xsd:enumeration value="sunrise"/> <xsd:enumeration value="at"/> </xsd:restriction> </xsd:simpleType> <xsd:complexType name="ephemDateTimeType"> <xsd:simpleContent> <xsd:extension base="xsd:dateTime"> <xsd:attribute name="when" type="dsp:ephemDateTimeEnum" use="required" /> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <!-- ephemNow is the special case of declaring a relative date & time (now) --> <xsd:complexType name="ephemNowType"/> <xsd:complexType name="planLocalizationType"> <xsd:sequence> <!-- Location for ephemeral calculations --> <xsd:element name="sitename" type="xsd:string"/> <!-- Begin date/time for ephemeral calculations --> <xsd:choice> <xsd:element name="beginNow" type="dsp:ephemNowType"/> <xsd:element name="begin" type="dsp:ephemDateTimeType"/> </xsd:choice> <xsd:element name="showApparentCoords" type="xsd:boolean" /> <xsd:element name="useEquipment" type="xsd:boolean" /> <xsd:element name="useConditions" type="xsd:boolean" /> <xsd:element name="fetchDSS" type="xsd:boolean" /> </xsd:sequence> </xsd:complexType> <!-- Plan filter types --> <!-- Whether Observed, i.e. present in the observing log --> <xsd:complexType name="observedFilterType"> <xsd:simpleContent> <xsd:extension base="xsd:boolean" /> </xsd:simpleContent> </xsd:complexType> <!-- Magnitude range --> <xsd:complexType name="magnitudeFilterType"> <xsd:sequence> <xsd:element name="minmag" type="xsd:double"/> <xsd:element name="maxmag" type="xsd:double"/> </xsd:sequence> <xsd:attribute name="includemissing" use="required"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="no"/> <xsd:enumeration value="yes"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:complexType> <!-- Size range --> <xsd:complexType name="sizeFilterType"> <xsd:sequence> <xsd:element name="minsize" type="dsp:angleType" /> <xsd:element name="maxsize" type="dsp:angleType" /> </xsd:sequence> <xsd:attribute name="includemissing" use="required"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="no" /> <xsd:enumeration value="yes" /> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:complexType> <!-- Constellations --> <xsd:complexType name="constellationFilterType"> <xsd:sequence> <xsd:element name="constellation" minOccurs="0" maxOccurs="88" type="xsd:string"/> </xsd:sequence> </xsd:complexType> <!-- Object types --> <xsd:complexType name="objectTypeFilterType"> <xsd:sequence> <xsd:element name="objectType" minOccurs="0" maxOccurs="19" type="xsd:string"/> </xsd:sequence> </xsd:complexType> <!-- Atlas --> <xsd:complexType name="atlasFilterType"> <xsd:sequence> <xsd:element name="atlasName" type="xsd:string"/> <xsd:element name="chartNumber" type="xsd:positiveInteger"/> </xsd:sequence> </xsd:complexType> <!-- Horizontal Position Filter --> <!-- Filter by range. Azimuth can traverse 0 degrees. --> <xsd:complexType name="horizonRangeType"> <xsd:sequence> <xsd:element name="altitude"> <xsd:complexType> <xsd:sequence> <xsd:element name="minalt" type="dsp:angleType"/> <xsd:element name="maxalt" type="dsp:angleType"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="azimuth"> <xsd:complexType> <xsd:sequence> <xsd:element name="minaz" type="dsp:angleType"/> <xsd:element name="maxaz" type="dsp:angleType"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> <!-- Filter by local horizon model associated with the plan location, if any. **Not yet supported. --> <xsd:complexType name="horizonLocalType"/> <xsd:complexType name="horizonFilterType"> <xsd:sequence> <xsd:choice> <xsd:element name="horizonRange" type="dsp:horizonRangeType"/> <xsd:element name="horizonLocal" type="dsp:horizonLocalType"/> </xsd:choice> </xsd:sequence> </xsd:complexType> <!-- Double star separation filter (units are arcseconds) --> <xsd:complexType name="separationFilterType"> <xsd:sequence> <xsd:element name="minsep" type="xsd:double"/> <xsd:element name="maxsep" type="xsd:double"/> </xsd:sequence> <xsd:attribute name="includemissing" use="required"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="no"/> <xsd:enumeration value="yes"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:complexType> <!-- Collection of filters for plan --> <xsd:complexType name="planFiltersType"> <xsd:sequence> <xsd:element name="observedFilter" type="dsp:observedFilterType" minOccurs="0"/> <xsd:element name="magnitudeFilter" type="dsp:magnitudeFilterType" minOccurs="0"/> <xsd:element name="sizeFilter" type="dsp:sizeFilterType" minOccurs="0"/> <xsd:element name="constellationFilter" type="dsp:constellationFilterType" minOccurs="0"/> <xsd:element name="objectTypeFilter" type="dsp:objectTypeFilterType" minOccurs="0"/> <xsd:element name="atlasFilter" type="dsp:atlasFilterType" minOccurs="0"/> <xsd:element name="horizonFilter" type="dsp:horizonFilterType" minOccurs="0"/> </xsd:sequence> </xsd:complexType> <!-- Plan Alerts --> <!-- Horizon Alert --> <xsd:complexType name="horizonAlertType"> <xsd:sequence> <xsd:element name="altitude" type="dsp:angleType" minOccurs="0"/> <xsd:element name="azimuth" type="dsp:angleType" minOccurs="0"/> <!-- Alert time (in minutes) for crossing into the included region or crossing out of the included region. --> <xsd:element name="alertMinutes" type="xsd:positiveInteger"/> </xsd:sequence> </xsd:complexType> <!-- Collection of alerts for plan --> <xsd:complexType name="planAlertsType"> <xsd:sequence> <xsd:element name="horizonAlert" type="dsp:horizonAlertType" minOccurs="0"/> </xsd:sequence> </xsd:complexType> <!-- DSS image descriptor. --> <xsd:complexType name="dssDescriptorType"> <xsd:sequence> <xsd:element name="dss_ServerUrl" type="xsd:string" /> <xsd:element name="dss_SurveyValue" type="xsd:string" /> <xsd:element name="dss_Size"> <xsd:simpleType> <xsd:restriction base="xsd:integer"> <xsd:minInclusive value="1"/> <xsd:maxInclusive value="60"/> </xsd:restriction> </xsd:simpleType> </xsd:element> </xsd:sequence> <xsd:attribute name="id" type="xsd:ID" use="required"/> </xsd:complexType> <xsd:complexType name="dssDescriptorsType"> <xsd:sequence> <xsd:element name="dssDescriptor" type="dsp:dssDescriptorType" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <!-- Sorting options --> <xsd:complexType name="sortOptionType"> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute name="direction" use="required"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="asc"/> <xsd:enumeration value="desc"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <xsd:complexType name="sortOptionsType"> <xsd:sequence> <xsd:element name="sortOption" type="dsp:sortOptionType" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <!-- Various types used in plan items --> <xsd:simpleType name="planetEphemerisType"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="Sun" /> <xsd:enumeration value="Mercury" /> <xsd:enumeration value="Venus" /> <xsd:enumeration value="Mars" /> <xsd:enumeration value="Jupiter" /> <xsd:enumeration value="Saturn" /> <xsd:enumeration value="Uranus" /> <xsd:enumeration value="Neptune" /> <xsd:enumeration value="Pluto" /> <xsd:enumeration value="Moon" /> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="objectDesigType"> <xsd:restriction base="xsd:string"> <xsd:maxLength value="25"/> </xsd:restriction> </xsd:simpleType> <xsd:complexType name="planetDesigType"> <xsd:simpleContent> <xsd:extension base="dsp:objectDesigType"> <xsd:attribute name="ephem" type="dsp:planetEphemerisType" /> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <xsd:complexType name="elementsType" abstract="true"> <xsd:sequence> <xsd:element name="epochJde" type="xsd:decimal" /> <!-- T of passage thru perihelion --> <xsd:element name="T0" type="xsd:decimal" /> <!-- eccentricity --> <xsd:element name="e" type="xsd:decimal" /> <!-- argument of perihelion (to radians) --> <xsd:element name="LonPeri" type="xsd:decimal" /> <!-- longitude of the ascending node (to radians) --> <xsd:element name="LonNode" type="xsd:decimal" /> <!-- inclination to ecliptic (to radians) --> <xsd:element name="Incl" type="xsd:decimal" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="asteroidElementsType"> <xsd:complexContent> <xsd:extension base="dsp:elementsType"> <xsd:sequence> <!-- mean anomaly per day (to radians) --> <xsd:element name="M0" type="xsd:decimal" /> <!-- semimajor axis in AU --> <xsd:element name="a" type="xsd:decimal" /> <!-- mean motion per day (to radians) --> <xsd:element name="n" type="xsd:decimal" /> <xsd:element name="H" type="xsd:decimal" /> <xsd:element name="G" type="xsd:decimal" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="cometElementsType"> <xsd:complexContent> <xsd:extension base="dsp:elementsType"> <xsd:sequence> <!-- perihelion distance in AU --> <xsd:element name="q" type="xsd:decimal" /> <xsd:element name="g" type="xsd:decimal" /> <xsd:element name="k" type="xsd:decimal" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ObjectType enumerates descriptive names of types of celestial objects --> <xsd:simpleType name="objectType"> <xsd:restriction base="xsd:string"> <xsd:maxLength value="20"/> <xsd:enumeration value="Galaxy"/> <xsd:enumeration value="Unknown"/> <xsd:enumeration value="Open Cluster"/> <xsd:enumeration value="Globular Cluster"/> <xsd:enumeration value="Planetary Nebula"/> <xsd:enumeration value="Diffuse Nebula"/> <xsd:enumeration value="Cluster/Nebulosity"/> <xsd:enumeration value="Single Star"/> <xsd:enumeration value="Double Star"/> <xsd:enumeration value="Triple Star"/> <xsd:enumeration value="Cluster of Galaxies"/> <xsd:enumeration value="Dark Nebula"/> <xsd:enumeration value="Quasar"/> <xsd:enumeration value="Supernova Remnant"/> <xsd:enumeration value="Carbon Star"/> <xsd:enumeration value="Variable Star"/> <xsd:enumeration value="Planet"/> <xsd:enumeration value="Comet"/> <xsd:enumeration value="Asteroid"/> </xsd:restriction> </xsd:simpleType> <!-- AngleType must be measured in decimal hours, degrees or radians --> <!-- UOM = Unit of Measure and is required for AngleType --> <xsd:simpleType name="angleUOM"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="hours"/> <xsd:enumeration value="degrees"/> <xsd:enumeration value="arcminutes"/> <xsd:enumeration value="arcseconds"/> <xsd:enumeration value="radians"/> </xsd:restriction> </xsd:simpleType> <xsd:complexType name="angleType"> <xsd:simpleContent> <xsd:extension base="xsd:double"> <xsd:attribute name="uom" type="dsp:angleUOM" use="required"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <xsd:simpleType name="equinoxType"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="unknown"/> <xsd:enumeration value="now"/> <xsd:enumeration value="J2000"/> <xsd:enumeration value="J2050"/> </xsd:restriction> </xsd:simpleType> <xsd:complexType name="equPosType"> <xsd:sequence> <!-- 2000.0 is the most common --> <xsd:element type="dsp:angleType" name="rightAscension"/> <xsd:element type="dsp:angleType" name="declination"/> </xsd:sequence> <xsd:attribute type="dsp:equinoxType" name="equinox" use="required"/> </xsd:complexType> <xsd:complexType name="properMotionType"> <!-- Proper motion in milliarcseconds per year --> <xsd:sequence> <xsd:element type="xsd:integer" name="ra_mas"/> <xsd:element type="xsd:integer" name="decl_mas"/> </xsd:sequence> </xsd:complexType> <xsd:simpleType name="magPhotomType"> <xsd:restriction base="xsd:string"> <xsd:minLength value="1"/> <xsd:maxLength value="2"/> </xsd:restriction> </xsd:simpleType> <xsd:complexType name="magnitudeType"> <xsd:simpleContent> <xsd:extension base="xsd:decimal"> <xsd:attribute type="dsp:magPhotomType" name="magPhotom" use="optional"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <!-- Mean surface brightness from a catalog in magnitude per square arcsecond --> <xsd:simpleType name="surfaceBrightnessType"> <xsd:restriction base="xsd:decimal"> <xsd:minExclusive value="0"/> </xsd:restriction> </xsd:simpleType> <!-- User defined text value. Limit to 100 characters. --> <xsd:simpleType name="userTextType"> <xsd:restriction base="xsd:string" > <xsd:maxLength value="100"/> </xsd:restriction> </xsd:simpleType> <!-- Double Star orbital elements type --> <xsd:complexType name="doubleStarElementsType"> <xsd:sequence> <!-- Period of orbital revolution in years --> <xsd:element name="P" type="xsd:decimal" /> <!-- Semimjor axis of orbit in arcseconds --> <xsd:element name="A" type="xsd:decimal" /> <!-- Inclination of orbit in degrees --> <xsd:element name="I" type="xsd:decimal" /> <!-- Position angle of the ascending node in degrees --> <xsd:element name="N" type="xsd:decimal" /> <!-- Time of periastron in years --> <xsd:element name="T" type="xsd:decimal" /> <!-- Eccentricity of orbit in degrees --> <xsd:element name="E" type="xsd:decimal" /> <!-- Longitude of periastron in degrees --> <xsd:element name="O" type="xsd:decimal" /> <!-- Grade of orbit as defined in the (Sixth) Catalog of Orbits of Visual Binary Stars --> <xsd:element name="Grade" type="xsd:integer" /> </xsd:sequence> </xsd:complexType> <!-- Double Star measurement --> <xsd:complexType name="doubleStarMeasurementType"> <xsd:sequence> <xsd:element name="year" type="xsd:nonNegativeInteger" minOccurs="0" /> <xsd:element name="separation" type="dsp:angleType" minOccurs="0" /> <xsd:element name="positionAngle" type="dsp:angleType" minOccurs="0" /> </xsd:sequence> </xsd:complexType> <!-- Plan item base type --> <xsd:complexType name="planItemType" abstract="true"> <xsd:sequence> <!-- Designation of object. Some names have special meanings: --> <!-- Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto. --> <xsd:element name="objectDesig"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="40"/> </xsd:restriction> </xsd:simpleType> </xsd:element> <!-- Computational model, MPC circular number, CDS catalog number, etc --> <xsd:element name="objectSource" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="100"/> </xsd:restriction> </xsd:simpleType> </xsd:element> <!-- Dictates which ephemeris is used for calcs [ planet | comet | asteroid | dso | vs | ds ] --> <xsd:element name="objectTypeCode" type="dsp:objectType" /> <!-- Optional DSS image descriptor. Position may be provided at runtime. --> <xsd:element name="dssDescriptorID" type="xsd:IDREF" minOccurs="0"/> <!-- Observed is optional. --> <xsd:element name="observed" type="xsd:boolean" minOccurs="0"/> <!-- Optional element for a text value. --> <xsd:element name="userText" type="dsp:userTextType" minOccurs="0"/> <!-- Optional element for an integer value. --> <xsd:element name="userInteger" type="xsd:integer" minOccurs="0"/> <!-- Optional element for a double value. --> <xsd:element name="userDouble" type="xsd:decimal" minOccurs="0"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="planetItemType"> <xsd:complexContent> <xsd:extension base="dsp:planItemType"> <xsd:sequence> <xsd:element name="ephemeris" type="dsp:planetEphemerisType" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="asteroidItemType"> <xsd:complexContent> <xsd:extension base="dsp:planItemType"> <xsd:sequence> <xsd:element name="elements" type="dsp:asteroidElementsType" minOccurs="0" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="cometItemType"> <xsd:complexContent> <xsd:extension base="dsp:planItemType"> <xsd:sequence> <xsd:element name="elements" type="dsp:cometElementsType" minOccurs="0" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="catalogItemType"> <xsd:complexContent> <xsd:extension base="dsp:planItemType"> <xsd:sequence> <!-- One or more other names; the first will always show in DSP --> <xsd:element name="commonName" minOccurs="0" maxOccurs="unbounded"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="25"/> </xsd:restriction> </xsd:simpleType> </xsd:element> <!-- Equatorial coordinates of the center of the object --> <xsd:element name="position" type="dsp:equPosType" minOccurs="0"/> <!-- Magnitude of the object --> <xsd:element name="primaryMag" type="dsp:magnitudeType" minOccurs="0"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="dsoItemType"> <xsd:complexContent> <xsd:extension base="dsp:catalogItemType"> <xsd:sequence> <!-- Magnitude of the illuminating or central object --> <xsd:element name="secondaryMag" type="dsp:magnitudeType" minOccurs="0"/> <!-- PrimarySize is the dimension of a symmetrical object OR the larger dimension of an asymmetrical object; typically the major axis of an ellipse --> <xsd:element name="primarySize" type="dsp:angleType" minOccurs="0"/> <!-- SecondarySize is the smaller dimension of an asymmetrical object; typically the minor axis of an ellipse --> <xsd:element name="secondarySize" type="dsp:angleType" minOccurs="0"/> <!-- Appropriate for extended objects only --> <xsd:element name="surfaceBrightness" type="dsp:surfaceBrightnessType" minOccurs="0"/> <!-- Appropriate for galaxies & nebulae --> <xsd:element name="positionAngle" type="dsp:angleType" minOccurs="0"/> <!-- Appropriate for galaxies --> <xsd:element name="inclinationAngle" type="dsp:angleType" minOccurs="0"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="stoItemType"> <xsd:complexContent> <xsd:extension base="dsp:catalogItemType"> <xsd:sequence> <!-- Stellar spectral class --> <xsd:element name="spectralCode" type="dsp:spectralType" minOccurs="0"/> <!-- Proper motion in milliarcseconds per year --> <xsd:element name="properMotion" type="dsp:properMotionType" minOccurs="0"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="stoDoubleItemType"> <xsd:complexContent> <xsd:extension base="dsp:stoItemType"> <xsd:sequence> <!-- Secondary magnitude is the dimmest for a double --> <xsd:element name="secondaryMag" type="dsp:magnitudeType" minOccurs="0"/> <!-- Secondary spectral class --> <xsd:element name="secondarySpectralCode" type="dsp:spectralType" minOccurs="0"/> <!-- Measurement --> <xsd:element name="doubleStarMeasurement" type="dsp:doubleStarMeasurementType" minOccurs="0" /> <!-- Orbital Elements for some visual double stars --> <xsd:element name="doubleStarElements" type="dsp:doubleStarElementsType" minOccurs="0" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="stoVariableItemType"> <xsd:complexContent> <xsd:extension base="dsp:stoItemType"> <xsd:sequence> <!-- Secondary magnitude is the dimmest --> <xsd:element name="secondaryMag" type="dsp:magnitudeType" minOccurs="0"/> <!-- Type of variability as defined by GCVS --> <xsd:element name="variableTypeCode" type="xsd:string"/> <!-- Epoch of maximum light (minimum for eclipsing, ellipsoidal, RV Tau and RS CVn types) --> <xsd:element name="variableEpoch" type="xsd:decimal" minOccurs="0"/> <!-- Period of variability in days --> <xsd:element name="variablePeriod" type="xsd:decimal" minOccurs="0"/> <!-- Duration in % of period for eclipsing types, rise time for others --> <xsd:element name="variableDuration" type="xsd:nonNegativeInteger" minOccurs="0"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- Document definition --> <xsd:element name="ObservingPlan"> <xsd:complexType> <xsd:sequence> <xsd:element name="planMetaData" type="dsp:planMetaDataType"/> <!-- Localization is optional --> <xsd:element name="planLocalization" type="dsp:planLocalizationType" minOccurs="0"/> <!-- Filters are optional --> <xsd:element name="planFilters" type="dsp:planFiltersType" minOccurs="0"/> <!-- Alerts are optional --> <xsd:element name="planAlerts" type="dsp:planAlertsType" minOccurs="0"/> <!-- DSS Descriptors are optional; they are referenced by ID in plan items --> <xsd:element name="dssDescriptors" type="dsp:dssDescriptorsType" minOccurs="0" /> <!-- Sorting options are optional --> <xsd:element name="sortOptions" type="dsp:sortOptionsType" minOccurs="0" /> <!-- Plan items --> <xsd:element name="planItem" type="dsp:planItemType" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <!-- schemaVersion --> <xsd:attribute name="schemaVersion" type="xsd:string" use="required"/> <!-- producer --> <xsd:attribute name="producer" type="xsd:string" use="optional"/> </xsd:complexType> <!-- Link DSS descriptor collection item to plan item --> <xsd:key name="dssKey"> <xsd:selector xpath="*/dssDescriptors/dssDescriptor"/> <xsd:field xpath="@id"/> </xsd:key> <xsd:keyref name="dssRef" refer="dsp:dssKey"> <xsd:selector xpath="*/planItem/dssDescriptor"/> <xsd:field xpath="@id"/> </xsd:keyref> </xsd:element> </xsd:schema>